package com.caiheng.api.entity.examine;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 审批申请记录对象 examine_approve_reg_record
 *
 * @author ruoyi
 * @date 2022-11-23
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("examine_approve_reg_record")
public class ExamineApproveRegRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    private Integer propertyId;

    private String propertyName;

    private Integer estateId;

    private String estateName;

    /**
     * 审批单号
     */
    private String approveNo;

    /**
     * 审批类目id
     */
    private Integer approveId;

    /**
     * 发起的审批标题
     */
    private String approveTitle;

    /**
     * 审批类型 0 - 报销类  1 - 采购类
     */
    private Integer approveType;

    /**
     * 发起人 微信用户id
     */
    private Integer userId;

    /**
     * 申请人姓名
     */
    private String userName;

    /**
     * 小区/物业/公司名称/部门名称
     */
    private String deptName;

    /**
     * 结算金额/清算金额
     */
    private BigDecimal settlementMoney;

    /**
     *  费用发生日期
     */
    private String useDate;

    /**
     * 添加时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     *  审核结束时间
     */
    private Date checkOverTime;

    /**
     * 审批的状态 0 - 待审批  1 - 审批中  2 - 审核通过  3 - 撤销审批 4 - 审核拒绝
     */
    private Integer state;

    /**
     * 最后的审核结果
     */
    private String checkResult;

    /**
     *  撤销时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cancelTime;

    /**
     *  备注信息
     */
    private String remark;

    /**
     *  申请事由
     */
    private String introduce;

    @TableField(exist = false)
    private String nickName;

    @TableField(exist = false)
    private String faceUrl;

    @TableField(exist = false)
    private Integer isCanCheck;

    @TableField(exist = false)
    private Integer checkState;


    @TableField(exist = false)
    private ExamineApproveRegAdminRecord lastRegAdminRecord;

    @TableField(exist = false)
    private List<ExamineApproveRegInfo> regInfos;

    @TableField(exist = false)
    private List<ExamineApproveRegImg> regImgs;

    @TableField(exist = false)
    private List<ExamineApproveTemplateUser> templateUsers;

    @TableField(exist = false)
    private List<ExamineApproveTemplateUser> copyTemplateUsers;
}
